/**
 * @file tableau_arme.h
 * Definit les caracteristiques du du tableau d'arme.
 */
#ifndef _TABLEAU_ARME_H
#define _TABLEAU_ARME_H

#include "Arme.h"
#include <iostream>

/**
* @struct tableau_arme
*/
struct tableau_arme
{
    arme* a;///@param a arme* l'arme du hero
    int nb_arme_possible; ///@param nb_arme_possible entier la capacité du tableau d'arme
    int nb_arme;///@param nb_arme entier le nombre de case utilisée dans le tableau
};

/**
@brief Création d'un tableau d'arme à partir d'un fichier texte
@param tableau de caractère constante filename
@return pointeur sur tableau_arme
*/
tableau_arme* creerTabArme(const char filename[]);

/**
@brief Suppression d'un tableau d'arme
@param tableau_arme* Ta
@return none
*/
void supprimeTabArme(tableau_arme * Ta);

/**
@brief Affiche un tableau d'arme
@param tableau_arme* Ta
@return none
*/
void afficheTabArme(tableau_arme * Ta);

/**
@brief recuperation de l'arme
@param tableau_arme* Ta
@return pointeur sur arme
*/
arme* tabArmeGetArme(tableau_arme * Ta);

/**
@brief recuperarion du nombre possible d'arme que l'on peut rentrer dans le tableau d'arme
@param tableau_arme* Ta
@return entier
*/
int tabArmeGetNbPos(tableau_arme * Ta);

/**
@brief recuperation du nombre d'arme qu'il y a dans le tableau d'arme
@param tableau_arme* Ta
@return entier
*/
int tabArmeGetNbArme(tableau_arme * Ta);

/**
@brief change l'arme
@param tableau_arme* Ta, arme* a
@return none
*/
void tabArmeSetArme(tableau_arme * Ta, arme * a);

/**
@brief change le nombre possible d'arme
@param tableau_arme* Ta, entier nb_pos
@return none
*/
void tabArmeSetNbPos(tableau_arme * Ta, int nb_pos);

/**
@brief change le nombre d'arme
@param tableau_arme* Ta, arme* a
@return none
*/
void tabArmeSetNbArme(tableau_arme * Ta, int nb);

/**
@brief ajout d'une arme dans le tableau d'arme
@param tableau_arme* Ta, arme* a
@return none
*/
void ajoutArme(tableau_arme * Ta, arme * a);

/**
@brief Supprime une arme du tableau
@param tableau_arme* Ta, entier id
@return none
*/
void tabArmeSupprime(tableau_arme * Ta, int id);

/**
@brief recherche une arme dans le tableau
@param tableau_arme* Ta, entier id
@return pointeur sur arme
*/
arme* rechercheArme(tableau_arme * Ta, int id);


void debloqueArme(tableau_arme* Ta);
#endif
